/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: YKH
 * Date: 2022-04-10
 * Time: 20:00
 */
public class Test05 {
    //不使用多线程 串行
    public static void  series() {
        int a=1;
        int b=1;
        //currentTimeMillis 用来统计时间戳  开始时间
        long begin = System.currentTimeMillis();
        for(long i=0;i<10_0000_0000;i++) {
            a++;
        }
        for(long i=0;i<10_0000_0000;i++) {
            b++;
        }
        //currentTimeMillis 用来统计时间戳  结束时间
        long end = System.currentTimeMillis();
        System.out.println("运行时间:" + (end-begin));
    }

    //使用多线程
    public static void myThread() throws InterruptedException {
        //currentTimeMillis 用来统计时间戳  开始时间
        long begin = System.currentTimeMillis();
        //第一个线程
        Thread t1 = new Thread() {
            long begin = System.currentTimeMillis();
            @Override
            public void run() {
                int a = 1;
                long begin = System.currentTimeMillis();
                for (long i = 0; i < 10_0000_0000; i++) {
                    a++;
                }
            }
        };
        t1.start();
        //第二个线程
        Thread t2 = new Thread() {
            long begin = System.currentTimeMillis();
            @Override
            public void run() {
                int b = 1;
                long begin = System.currentTimeMillis();
                for (long i = 0; i < 10_0000_0000; i++) {
                    b++;
                }
            }
        };
        t2.start();
        try {
            //join 就是等待对应的线程结束
            //当t1,t2没执行完之前，join就会阻塞等待
            t1.join();
            t2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //currentTimeMillis 用来统计时间戳  结束时间
        long end = System.currentTimeMillis();
        System.out.println("运行时间:" + (end-begin));
    }
    public static void main(String[] args) {
       // series();   // 不使用多线程，此处运行时间 480毫秒左右
        try {         //使用多线程，此处运行时间 250毫秒左右，效率明显提高了
            myThread();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
